#ifndef NctiRenderKit_H
#define NctiRenderKit_H
#include "NctiRenderObject.h"

namespace NCTI
{
    class NctiViewerRenderer;
    /**
    * @brief Base class for render kit.
    * @details kit added in segment item
    * @see NctiRenderSegmentItem
    */
    class DECL_NCTI_RENDER NctiRenderKit : public NctiRenderObject
    {
        NCTI_RENDER_FUNCTIONS(NctiRenderKit)
    public:
        NctiRenderKit();
        virtual ~NctiRenderKit();

        /**
        * @brief Copy data From i_kit
        * @param[in] i_kit kit to copy
        */
        void CopyKit(NctiRenderKit* i_kit);

        /**
        * @brief Copy this to i_kit
        * @param[in] i_kit target kit
        */
        void AttachKit(NctiRenderKit* i_kit)const;

        /**
        * @brief clone
        */
        virtual NctiRenderKit* new_kit()const = 0;
    };
}
#endif // !NctiRenderKit_H
